Emberveil sourcegame/2006Scape Server/src/main/java/com/rs2/net/packets/impl/ClickItem.java
package com.rs2.net.packets.impl;
import com.rs2.Constants;
import com.rs2.GameEngine;
import com.rs2.event.impl.ItemFirstClickEvent;
import com.rs2.game.content.consumables.Beverages;
import com.rs2.game.content.consumables.Kebabs;
import com.rs2.game.content.consumables.Beverages.beverageData;
import com.rs2.game.content.consumables.Food;
import com.rs2.game.content.minigames.TreasureTrails;
import com.rs2.game.content.minigames.castlewars.CastleWars;
import com.rs2.game.content.skills.herblore.Herblore;
import com.rs2.game.content.skills.prayer.Prayer;
import com.rs2.game.content.skills.woodcutting.BirdNest;
import com.rs2.game.items.DeprecatedItems;
import com.rs2.game.items.impl.ExperienceLamp;
import com.rs2.game.items.impl.Flowers;
import com.rs2.game.items.impl.GodBooks;
import com.rs2.game.players.Player;
import com.rs2.net.Packet;
import com.rs2.net.packets.PacketType;
import com.rs2.util.GameLogger;
import com.rs2.util.Misc;
/**
* Clicking an item, bury bone, eat food etc
**/
public class ClickItem implements PacketType {
@Override
public void processPacket(Player player, Packet packet) {
player.endCurrentTask();
packet.readSignedWordBigEndianA();
int itemSlot = packet.readUnsignedWordA();
int itemId = packet.readUnsignedWordBigEndian();
if (itemSlot < 0 || itemSlot >= player.playerItems.length) return;
if (itemId != player.playerItems[itemSlot] - 1) {
return;
}
if(!player.getItemAssistant().playerHasItem(itemId, 1)) {
return;
}
player.post(new ItemFirstClickEvent(itemId));
if (com.rs2.game.content.quests.impl.MemberQuests.clean(player,itemId,itemSlot)) return;
if (itemId == 1856) {
if (com.rs2.game.content.quests.impl.TribalTotem.readBook(player,itemId)) return;
com.rs2.game.content.emberveil.Emberveil.journal(player);
return;
}
GodBooks.sendPreachOptions(player, itemId);
if (itemId == 6) {
player.getCannon().placeCannon();
}
String itemName = DeprecatedItems.getItemName(itemId).toLowerCase();
if (player.getPlayerAssistant().isPlayer()) {
GameLogger.writeLog(player.playerName, "clickitem", player.playerName + " clicked item " + itemName + "");
}
if (!CastleWars.deleteCastleWarsItems(player, itemId)) {
return;
}
if(CastleWars.isInCw(player) && itemId == 4053) {
player.getItemAssistant().deleteItem(4053, player.getItemAssistant().getItemSlot(4053), 1);
//npc id, x, y, height, walk, hp, maxhit, att, def
GameEngine.npcHandler.spawnNpc2(1532, player.absX, player.absY, player.heightLevel, 0, 200, 0, 0, 100, false);
player.getPacketSender().sendMessage("You setup a barricade.");
} else if (!CastleWars.isInCw(player) && itemId == 4053) {
player.getPacketSender().sendMessage("You need to be in castlewars to drop a barricade.");
player.getItemAssistant().deleteItem(itemId, player.getItemAssistant().getItemAmount(itemId));
}
if (itemId >= 5509 && itemId <= 5514) {
int pouch = -1;
int a = itemId;
if (a == 5509) {
pouch = 0;
}
if (a == 5510) {
pouch = 1;
}
if (a == 5512) {
pouch = 2;
}
if (a == 5514) {
pouch = 3;
}
player.getPlayerAssistant().fillPouch(pouch);
return;
}
switch (itemId) {
case 4251:
player.getPlayerAssistant().movePlayer(3661, 3526, 0);
player.getItemAssistant().replaceItem(4251, 4252);
break;
case 4079:
player.startAnimation(1457);
break;
case 407:
int rand = Misc.random(1, 5);
if (rand <= 2) {
player.getItemAssistant().replaceItem(407, 409);
} else if (rand <= 4) {
player.getItemAssistant().replaceItem(407, 411);
} else {
player.getItemAssistant().replaceItem(407, 413);
}
break;
case 2329:
player.getItemAssistant().deleteItem(2329, 1);
player.getItemAssistant().addItem(2313, 1);
break;
case 550:
player.getPlayerAssistant().showMap();
break;
case 583:
GameEngine.trawler.bail(player);
break;
case 585:
GameEngine.trawler.emptyBucket(player);
break;
case 33:
player.getItemAssistant().deleteItem(itemId, 1);
player.getItemAssistant().addItem(36, 1);
break;
case 32:
player.getItemAssistant().deleteItem(itemId, 1);
player.getItemAssistant().addItem(38, 1);
break;
case 594:
player.getItemAssistant().deleteItem(itemId, 1);
player.getItemAssistant().addItem(596, 1);
break;
case 4550:
player.getItemAssistant().deleteItem(itemId, 1);
player.getItemAssistant().addItem(4548, 1);
break;
case 4537:
player.getItemAssistant().deleteItem(itemId, 1);
player.getItemAssistant().addItem(4539, 1);
break;
case 1971:
Kebabs.eat(player, itemSlot);
break;
case 2528:
case 4447:
ExperienceLamp.rubLamp(player, itemId);
break;
case 2677:
if (Constants.CLUES_ENABLED) {
player.getItemAssistant().deleteItem(itemId, 1);
TreasureTrails.addClueReward(player, 0);
}
break;
case 2678:
if (Constants.CLUES_ENABLED) {
player.getItemAssistant().deleteItem(itemId, 1);
TreasureTrails.addClueReward(player, 1);
}
break;
case 2679:
if (Constants.CLUES_ENABLED) {
player.getItemAssistant().deleteItem(itemId, 1);
TreasureTrails.addClueReward(player, 2);
}
break;
case 299:
new Flowers(player);
player.dialogueAction = 21;
break;
case 4155:// enchanted gem
player.getDialogueHandler().sendOption("How many kills do I have left?",
"Who are you?", "Where are you located?",
"How many slayer points do I have?");
player.dialogueAction = 145;
break;
case 3691:
player.getItemAssistant().deleteItem(3691, 1);
player.getItemAssistant().addItem(3690, 1);
player.getPlayerAssistant().startTeleport(2661, 3310, 0, "modern");
break;
// case 2528:
// ExperienceLamp.showInterface(c);
// break;
case 5070:
if (player.getItemAssistant().freeSlots() >= 2) {
player.getPacketSender().sendMessage("You search the nest.");
player.getItemAssistant().addItem(5076, 1);
player.getItemAssistant().deleteItem(itemId, 1);
player.getItemAssistant().addItem(5075, 1);
} else {
player.getPacketSender().sendMessage("You do not have enough inventory space to do that.");
}
break;
case 5071:
if (player.getItemAssistant().freeSlots() >= 2) {
player.getPacketSender().sendMessage("You search the nest.");
player.getItemAssistant().addItem(5078, 1);
player.getItemAssistant().deleteItem(itemId, 1);
player.getItemAssistant().addItem(5075, 1);
} else {
player.getPacketSender().sendMessage("You do not have enough inventory space to do that.");
}
break;
case 5072:
if (player.getItemAssistant().freeSlots() >= 2) {
player.getPacketSender().sendMessage("You search the nest.");
player.getItemAssistant().addItem(5077, 1);
player.getItemAssistant().deleteItem(itemId, 1);
player.getItemAssistant().addItem(5075, 1);
} else {
player.getPacketSender().sendMessage("You do not have enough inventory space to do that.");
}
break;
case 5073:
BirdNest.handleBirdNest(player, itemId, 0);
break;
case 5074:
BirdNest.handleBirdNest(player, itemId, 1);
break;
case 7413:
BirdNest.handleBirdNest(player, itemId, 2);
break;
case 2297:
player.getItemAssistant().addItem(2299, 1);
player.getItemAssistant().deleteItem(2297, 1);
break;
case 2299:
player.getItemAssistant().deleteItem(2299, 1);
break;
case 2301:
player.getItemAssistant().addItem(2303, 1);
player.getItemAssistant().deleteItem(2301, 1);
break;
case 2303:
player.getItemAssistant().deleteItem(2303, 1);
break;
case 2520:
player.forcedChat("Come on Dobbin, we can win the race!");
player.startAnimation(918);
break;
case 2522:
player.forcedChat("Come on Dobbin, we can win the race!");
player.startAnimation(919);
break;
case 2524:
player.forcedChat("Hi-ho Silver, and away!");
player.startAnimation(920);
break;
case 2526:
player.forcedChat("Neahhhyyy! Giddy-up horsey!");
player.startAnimation(921);
break;
case 405:
player.getItemAssistant().addCasketRewards(itemId);
break;
case 433:
player.getDialogueHandler().sendStatement("Visit the city of the white knights.");
player.nextChat = 0;
player.isBanking = false;
break;
case 2714:
player.getItemAssistant().deleteItem(itemId, 1);
player.getItemAssistant().addItem(995, 450);
player.getItemAssistant().addItem(1639, 1);
player.getItemAssistant().addItem(1635, 1);
player.pirateTreasure = 6;
break;
}
for (final beverageData b : beverageData.values()) {
if (itemId == b.getBev()) {
Beverages.drinkBeverage(player, itemId, itemSlot);
}
}
if (Food.isFood(itemId)) {
Food.eat(player, itemId, itemSlot);
}
if (Prayer.playerBones(player, itemId)) {
Prayer.buryBones(player, itemId, itemSlot);
}
if (player.getPotions().isPotion(itemId)) {
player.getPotions().handlePotion(itemId, itemSlot);
}
if (Herblore.isHerb(itemId)) {
Herblore.handleHerbCleaning(player, itemId, itemSlot);
return;
}
if (itemId == 952) {
player.getBarrows().spadeDigging();
return;
}
}
}